From 1d0ba98d5df703c0936f2334733f68143f0831f2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 4 May 2016 06:28:59 -0400 Subject: [PATCH] settings: Ensure derived fields are initialized I mistakenly assumed that gtk_settings_init was already doing something to trigger a notify for all properties. It doesn't, so we have to ensure that settings_update_font_values() is called at least once. https://bugzilla.gnome.org/show_bug.cgi?id=765966 --- gtk/gtksettings.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index 4b81ca1cd6..a720d35ea1 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -257,6 +257,7 @@ static void settings_update_key_theme (GtkSettings *setting static gboolean settings_update_xsetting (GtkSettings *settings, GParamSpec *pspec, gboolean force); +static void settings_update_font_values (GtkSettings *settings); static void gtk_settings_load_from_key_file (GtkSettings *settings, const gchar *path, @@ -356,6 +357,10 @@ gtk_settings_init (GtkSettings *settings) g_free (path); g_object_thaw_notify (G_OBJECT (settings)); + + /* ensure that derived fields are initialized */ + if (priv->font_size == 0) + settings_update_font_values (settings); } static void @@ -1966,15 +1971,18 @@ settings_update_font_values (GtkSettings *settings) PangoFontDescription *desc; const gchar *font_name; - priv->font_size = 0; - priv->font_size_absolute = FALSE; - priv->font_family = NULL; + g_free (priv->font_family); font_name = g_value_get_string (&priv->property_values[PROP_FONT_NAME - 1].value); desc = pango_font_description_from_string (font_name); if (desc == NULL) - return; + { + priv->font_size = 10 * PANGO_SCALE; + priv->font_size_absolute = FALSE; + priv->font_family = g_strdup ("Sans"); + return; + } if (pango_font_description_get_set_fields (desc) & PANGO_FONT_MASK_SIZE) { -- 2.30.2